Mình dùng tính hiệu của 8051 để reset nó nhưng sao không được, nó cứ reset liên tục. Ví dụ mình code khi có logic 0 vào port 1.1 thì port 1.2 tạo ra tín hiệu, mình lấy tín hiệu đó để reset nó (có thể dùng wa relay), nhưng nó cứ bị reset liên tục.
Thông báo
Collapse
No announcement yet.
{HELP} Dùng VDK tạo reset cho chính nó !
Collapse
X
-
8051 (89C51) bị reset ở mức 1 và khi nó đang reset thì các PORT 1,2,3 ở mức cao.Nguyên văn bởi thanhlonguit Xem bài viếtMình dùng tính hiệu của 8051 để reset nó nhưng sao không được, nó cứ reset liên tục. Ví dụ mình code khi có logic 0 vào port 1.1 thì port 1.2 tạo ra tín hiệu, mình lấy tín hiệu đó để reset nó (có thể dùng wa relay), nhưng nó cứ bị reset liên tục.
Do đó nếu nối PORT1.2 vào chân Reset thì khi nó không thể thoát khỏi trạng thái reset được do PORT1.2 luôn là mức 1.
Có thể dùng kiểu khi có mức 0 ở chân P1.1 thì cho chạy lệnh ORG 0000H.
Comment
-
Vậy chưa phải là Reset vì các biến trong RAM, các ngoại vi sẽ không bị xóa... Rất có thể làm loạn chương trình...Nguyên văn bởi chung1608 Xem bài viếtreset cho VDK ko nhất thiết phải tác động vào chân reset, bạn có thể dùng lệnh nhảy lên đầu chương trình chính là xem như reset rồi
Bạn duong_act nói đúng 1 nửa (nửa trên)...Nguyên văn bởi duong_act Xem bài viết8051 (89C51) bị reset ở mức 1 và khi nó đang reset thì các PORT 1,2,3 ở mức cao.
Do đó nếu nối PORT1.2 vào chân Reset thì khi nó không thể thoát khỏi trạng thái reset được do PORT1.2 luôn là mức 1.
Có thể dùng kiểu khi có mức 0 ở chân P1.1 thì cho chạy lệnh ORG 0000H.
Nếu chỉ nhảy về đầu chương trình đã gọi là Reset thì sao người ta còn nghĩ ra Watchdog trong, Watchdog ngoài..
Cho triệt để nên dùng Watchdog ngoài. Đơn giản thì dùng mạch RC sao cho khi Reset Logic của chân PORT1.2 không tác động được vào chân Reset lập tức mà bị "hãm lại một chút", Xịn hơn thì dùng IC chuyên dụng, Vd MAX1232...Hôm nay trời nắng chang chang.
Mèo con đi học chẳng mang thứ gì.
Chỉ mang một cái bút chì.
Và mang một mẩu bánh mì con con.
Comment
-
89 khi đang chạy mà bị reset cứng thì nó chỉ trả giá trị 0000h cho thanh ghi PC để trở về địa chỉ ORG 0000h thôi, giá trị của RAM vẫn đc giữa nguyên chỉ có các thanh ghi port mới trở về mặc định 0xFF.Nguyên văn bởi Acxen_lupine Xem bài viếtVậy chưa phải là Reset vì các biến trong RAM, các ngoại vi sẽ không bị xóa... Rất có thể làm loạn chương trình...
Bạn duong_act nói đúng 1 nửa (nửa trên)...
Nếu chỉ nhảy về đầu chương trình đã gọi là Reset thì sao người ta còn nghĩ ra Watchdog trong, Watchdog ngoài..
Cho triệt để nên dùng Watchdog ngoài. Đơn giản thì dùng mạch RC sao cho khi Reset Logic của chân PORT1.2 không tác động được vào chân Reset lập tức mà bị "hãm lại một chút", Xịn hơn thì dùng IC chuyên dụng, Vd MAX1232...
Comment
-
1. Đồng ý với các bạn là RESET ngoài hay bằng Watchdog trong sẽ không làm thay đổi giá trị hiện thời của INTERNAL RAM... cái này tôi nhầm, tôi đã xem lại!!!
2. Tuy nhiên nếu nói như bạn chung68:
Sẽ là thiếu vì tất cả các SFRs (chứ không phải chỉ có các port) sẽ đồng loạt trở về giá trị mặc định sau 2 chu kỳ máy.Nguyên văn bởi chung1608 Xem bài viết89 khi đang chạy mà bị reset cứng thì nó chỉ trả giá trị 0000h cho thanh ghi PC để trở về địa chỉ ORG 0000h thôi, giá trị của RAM vẫn đc giữa nguyên chỉ có các thanh ghi port mới trở về mặc định 0xFF.
3. Xin trả lời bạn duong_act:
Nhu cầu về Watchdog trong hay ngoài là nhằm đồng loạt đưa hệ thống (bao gồm CPU, SFRs...) về trạng thái mặc định ban đầu nhằm thoát khỏi 1 trạng thái xung đột hay bế tắc nào đó. (vd: tràn ngăn xếp chẳng hạn)
4. Tóm lại, ý của tôi là nếu làm theo cách của các bạn đưa ra (chỉ cho PC trỏ về 0000h) thì:
- Chỉ đơn thuần là làm cho chương trình được chạy lại từ đầu.
- Không giải quyết được vấn đề hệ thống đang rối loạn.
- không đạt mục đích của RESET đôi khi còn gây phản tác dụng. Cái phản tác dụng nhất ở đây là ngăn xếp sẽ tiếp tục đầy lên... nếu ta không nhớ xóa nó khi mới bắt đầu chương trình.
Tôi xin nhắc lại cái đáng giá nhất của RESET là việc đồng loạt đưa .... về trạng thái mặc định ban đầu, kể cả con trỏ ngăn xếp (SP), Thanh ghi Interrupt, Timer/Couter...Hôm nay trời nắng chang chang.
Mèo con đi học chẳng mang thứ gì.
Chỉ mang một cái bút chì.
Và mang một mẩu bánh mì con con.
Comment
-
Nếu là 89s thì bác có thể dùng thẳng wdt của nóNguyên văn bởi thanhlonguit Xem bài viếtMình dùng tính hiệu của 8051 để reset nó nhưng sao không được, nó cứ reset liên tục. Ví dụ mình code khi có logic 0 vào port 1.1 thì port 1.2 tạo ra tín hiệu, mình lấy tín hiệu đó để reset nó (có thể dùng wa relay), nhưng nó cứ bị reset liên tục.
Còn nếu là 89c thì bác có thể mắc mạch 555 tạo xung, sau mỗi chu kỳ định sẵn thì đưa xung ra reset lại 555, nếu vì lý do nào đó mà 89 bị treo thì nó sẽ dc 555 reset lại- Mạch nạp vdk 8051, AVR, PIC, EEPROM
- Linh kiện điện tử cho sinh viên
Comment
-
Nhưng chủ top đâu có dùng để thoát trạng thái rối loạn hay mắc kẹt ở đâu đó mà là chủ ý reset khi có tác động mức 1 ở chân nào đó kia mà. Còn việc reset khi lỗi thì đượng nhiên là WDT rồi. Cái này thì không bàn cãi.Nguyên văn bởi Acxen_lupine Xem bài viết1. Đồng ý với các bạn là RESET ngoài hay bằng Watchdog trong sẽ không làm thay đổi giá trị hiện thời của INTERNAL RAM... cái này tôi nhầm, tôi đã xem lại!!!
2. Tuy nhiên nếu nói như bạn chung68:
Sẽ là thiếu vì tất cả các SFRs (chứ không phải chỉ có các port) sẽ đồng loạt trở về giá trị mặc định sau 2 chu kỳ máy.
3. Xin trả lời bạn duong_act:
Nhu cầu về Watchdog trong hay ngoài là nhằm đồng loạt đưa hệ thống (bao gồm CPU, SFRs...) về trạng thái mặc định ban đầu nhằm thoát khỏi 1 trạng thái xung đột hay bế tắc nào đó. (vd: tràn ngăn xếp chẳng hạn)
4. Tóm lại, ý của tôi là nếu làm theo cách của các bạn đưa ra (chỉ cho PC trỏ về 0000h) thì:
- Chỉ đơn thuần là làm cho chương trình được chạy lại từ đầu.
- Không giải quyết được vấn đề hệ thống đang rối loạn.
- không đạt mục đích của RESET đôi khi còn gây phản tác dụng. Cái phản tác dụng nhất ở đây là ngăn xếp sẽ tiếp tục đầy lên... nếu ta không nhớ xóa nó khi mới bắt đầu chương trình.
Tôi xin nhắc lại cái đáng giá nhất của RESET là việc đồng loạt đưa .... về trạng thái mặc định ban đầu, kể cả con trỏ ngăn xếp (SP), Thanh ghi Interrupt, Timer/Couter...
Comment
-
Thế thì bạn dạy người ta làm thế nào để Reset có chủ ý đi. Nhưng nhớ là họ cần reset chứ không phải chạy lại chương trình từ đầu đâu nhé... Hai khái niệm này hoàn toàn khác nhau.Nguyên văn bởi duong_act Xem bài viếtNhưng chủ top đâu có dùng để thoát trạng thái rối loạn hay mắc kẹt ở đâu đó mà là chủ ý reset khi có tác động mức 1 ở chân nào đó kia mà. Còn việc reset khi lỗi thì đượng nhiên là WDT rồi. Cái này thì không bàn cãi.
Hôm nay trời nắng chang chang.
Mèo con đi học chẳng mang thứ gì.
Chỉ mang một cái bút chì.
Và mang một mẩu bánh mì con con.
Comment
-
Hơ, cái này thì có khó gì đâu...Nguyên văn bởi duong_act Xem bài viếtỜ bạn chỉ tôi cách mà Reset không chạy lại chương trình từ đầu rồi tôi nói tiếp
Bạn thừa sức nghĩ ra mà... đúng 1 tháng nữa nếu bạn vẫn chưa nghĩ ra tôi sẽ lập 1 topic mới về vấn đề này. Nếu bạn nghĩ ra thì nhờ bạn dành chút thời gian để giảng giải cho những anh em chưa biết nhé.Hôm nay trời nắng chang chang.
Mèo con đi học chẳng mang thứ gì.
Chỉ mang một cái bút chì.
Và mang một mẩu bánh mì con con.
Comment
-
Tôi thì tôi gà nên tôi chịuNguyên văn bởi Acxen_lupine Xem bài viếtHơ, cái này thì có khó gì đâu...
Bạn thừa sức nghĩ ra mà... đúng 1 tháng nữa nếu bạn vẫn chưa nghĩ ra tôi sẽ lập 1 topic mới về vấn đề này. Nếu bạn nghĩ ra thì nhờ bạn dành chút thời gian để giảng giải cho những anh em chưa biết nhé.
Có gì cao kiến thì chia sẻ cùng anh em cái
Comment
Bài viết mới nhất
Collapse
-
bởi chinhnguyen9
Điến âp vào 24V;Điên áp ra 30V;Dòng điện ra 10A
Trên nền tảng mạch Boost thay đổi như sau: cự âm tụ lọc C không nối mas mà nối vào Vc +24V
Mach phản hồi tao điê áp trên tụ lọc này ổn đinh ở 6V
Kết quả:
· Điện áp ra =24V+ 6V=30V
· Công...-
Channel: Hướng dẫn sử dụng diễn đàn
Hôm qua, 19:33 -
-
bởi chinhnguyen92. Các yếu tố để dòng điện đầu ra không bị "thiếu"
Dòng điện đầu ra bị "thiếu" có thể hiểu là không đủ 10A theo yêu cầu hoặc bị sụt áp khi tải thay đổi. Để đảm bảo điều này, bạn cần xem xét các yếu tố sau:
a. Khả năng chịu dòng của cuộn cảm- Dòng bão hòa (I_sat): Như
-
Channel: Hướng dẫn sử dụng diễn đàn
Hôm qua, 19:06 -
bởi chinhnguyen9
1. Tính toán cuộn cảm (Inductor)
Để tính giá trị cuộn cảm, chúng ta cần thực hiện các bước sau:
a. Xác định chu kỳ nhiệm vụ (Duty Cycle - D)
Với mạch tăng áp lý tưởng, chu kỳ nhiệm vụ được tính theo công thức :
D=1-VinVout=1-24V30V=0.2
Vậy D = 0.2 (20%)
b....-
Channel: Hướng dẫn sử dụng diễn đàn
Hôm qua, 19:03 -
-
bởi chinhnguyen9Công thức
Gain (dB) = 20 × log₁₀(A)
Thí dụ 1; 60dB
log₁₀(A)=60/20=3
⇒ A=V_out / V_in = 10³ = 1.000
Thí dụ 2; 100dB
log₁₀(A)=100/20=5
⇒ A=V_out / V_in = 105 = 100.000
Tí dụ 3; LM 358
Large Signal Open Loop Voltage Gain AVOL V/mV RL = 2.0...-
Channel: Hướng dẫn sử dụng diễn đàn
19-03-2026, 08:44 -
-
Trả lời cho Mạch 3s bị giảm điện áp đầu rabởi minhtri0405chả biết bạn xử lý được chưa , kích sạc hoặc điện áp > điện áp khối pin vào 2 chân P - P+ , nhiều mạch phải yêu cầu có kích lần đầu sau đó mới chạy...
-
Channel: Điện tử dành cho người mới bắt đầu
18-03-2026, 10:01 -
-
bởi minhtri0405đây có phải là 1 cách để test mosfet xịn hay dỏm khi mua đồ tàu không nhỉ , vì ko thể đập ra để coi lõi rồi trả hàng được....
-
Channel: Tâm tình dân kỹ thuật
18-03-2026, 09:57 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi Tuyenvc345
-
Channel: Hỗ trợ học tập
16-03-2026, 18:05 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi Tuyenvc345
-
Channel: Hỗ trợ học tập
16-03-2026, 18:04 -

Comment